mock
mock_adapter.onGet("/todo-list", { params: { id: "1" } }).reply(200, {
todoList: [{ id: "1", name: "代辦事項A", done: false }],
});
API
this.$axios.get("/todo-list", { params: { id: "1" } }).then((res) => {
this.todoList = res.data.todoList;
});
params錯誤測試: 404
延遲虛設至於new MockAdapter
中,需另外寫。
// 延遲5秒
let mock_adapter = new MockAdapter(axios, { delayResponse: 5000 });
第一次錯誤通常用來測試重試
功能是否如預期。
// 網絡錯誤
mock.onGet('/todo-list').networkError();
// 網絡錯誤(實行一次)
mock.onGet('/todo-list').networkErrorOnce();
// 網絡超時
mock.onGet("/users").timeout();
// 網絡超時(實行一次)
mock.onGet("/users").timeoutOnce();
透過replyOnce函數實踐
mock_adapter.onGet("/todo-list", { params: { id: "1" } }).replyOnce(200, {
todoList: [{ id: "1", name: "代辦事項A", done: false }],
});
mock_adapter.onPost().reply(412);
mock_adapter.onGet().reply(500);
mock_adapter.onAny("/anyURL").reply(500);
整體來說,mock的好處有以下兩點:
對業務邏輯程式無侵入,可另外撰寫做使用,使用後也不必刪除,可透過設定檔
進行切換模式,決定是否啟用。
可針對不同情境進行模擬,例如回傳值、Http延遲、錯誤行為....
有錯誤請不吝指教!
參考資料
https://vuejs.org/v2/guide
https://www.twblogs.net/a/5d49c12abd9eee5327fbd580
https://www.itread01.com/content/1541838193.html
感謝各路大神